package cn.lyw.discount.service.service;


import cn.common.restresult.util.RestResult;
import cn.lyw.discount.service.bo.AddUserDiscountBO;
import cn.lyw.discount.service.bo.EditUserDiscountBO;
import cn.lyw.discount.service.bo.GetUserDiscountByParamBO;
import cn.lyw.discount.service.domain.GetUserDiscountAllDO;
import cn.lyw.discount.service.domain.GetUserDiscountByParamDO;
import cn.lyw.discount.service.domain.GetUserDiscountByUserDO;

import java.util.List;

/**
 * @Author lyw
 * @Description 用户优惠券
 * @Date 10:39 2021/7/21
 * @Param
 * @return
 */
public interface UserDiscountService {

    /**
     * @return
     * @Author lyw
     * @Description 查询全部用户的优惠券
     * @Date 11:07 2021/7/21
     * @Param
     */
    List<GetUserDiscountAllDO> getUserDiscountAll();


    /**
     * @return
     * @Author lyw
     * @Description 根据用户id查询用户的优惠券
     * @Date 11:08 2021/7/21
     * @Param
     */
    GetUserDiscountByUserDO getUserDiscountByUser(String discountId);


    /**
     * @return
     * @Author lyw
     * @Description 根据用户id和优惠券状态查询
     * @Date 12:19 2021/7/21
     * @Param
     */
    List<GetUserDiscountByParamDO> getUserDiscountByParam(GetUserDiscountByParamBO bo);


    /**
     * @return
     * @Author lyw
     * @Description 根据优惠券id删除优惠券
     * @Date 11:12 2021/7/21
     * @Param
     */
    RestResult delUserDiscountById(String discountId);


    /**
     * @return
     * @Author lyw
     * @Description 修改优惠券
     * @Date 11:47 2021/7/21
     * @Param
     */
    RestResult editUserDiscount(EditUserDiscountBO bo);


    /**
     * @return
     * @Author lyw
     * @Description 添加优惠券
     * @Date 11:50 2021/7/21
     * @Param
     */
    RestResult addUserDiscount(AddUserDiscountBO bo);

}
